
Recherche avancée
Autres articles (102)
-
Personnaliser en ajoutant son logo, sa bannière ou son image de fond
5 septembre 2013, parCertains thèmes prennent en compte trois éléments de personnalisation : l’ajout d’un logo ; l’ajout d’une bannière l’ajout d’une image de fond ;
-
Publier sur MédiaSpip
13 juin 2013Puis-je poster des contenus à partir d’une tablette Ipad ?
Oui, si votre Médiaspip installé est à la version 0.2 ou supérieure. Contacter au besoin l’administrateur de votre MédiaSpip pour le savoir -
ANNEXE : Les plugins utilisés spécifiquement pour la ferme
5 mars 2010, parLe site central/maître de la ferme a besoin d’utiliser plusieurs plugins supplémentaires vis à vis des canaux pour son bon fonctionnement. le plugin Gestion de la mutualisation ; le plugin inscription3 pour gérer les inscriptions et les demandes de création d’instance de mutualisation dès l’inscription des utilisateurs ; le plugin verifier qui fournit une API de vérification des champs (utilisé par inscription3) ; le plugin champs extras v2 nécessité par inscription3 (...)
Sur d’autres sites (14067)
-
Is there any way to edit just the track data of an AVI file, like mkvpropedit does with MKV files ?
20 juillet 2016, par hmj6jmhI am trying to swap the order of 2 audio tracks of an AVI file using
ffmpeg
.ffmpeg -i "infile.avi" -map 0:0 -map 0:2 -map 0:1 -c copy "outfile.avi"
This works but the file is being re-encoded, not copied. It takes much longer than a straight copy to finish and the resulting file is larger than the original.
Is there any way to edit just the track data of an AVI file, like mkvpropedit does with MKV files ? Command line tool preferred.
General
Complete name : infile.avi
Format : AVI
Format/Info : Audio Video Interleave
File size : 451 MiB
Duration : 43mn 11s
Overall bit rate : 1 460 Kbps
Writing application : VirtualDubMod 1.5.10.2 (build 2540/release)
Writing library : VirtualDubMod build 2540/release
Video
ID : 0
Format : MPEG-4 Visual
Format profile : Advanced Simple@L5
Format settings, BVOP : 3
Format settings, QPel : No
Format settings, GMC : No warppoints
Format settings, Matrix : Default (MPEG)
Muxing mode : Packed bitstream
Codec ID : XVID
Codec ID/Hint : XviD
Duration : 43mn 11s
Bit rate : 1 190 Kbps
Width : 656 pixels
Height : 368 pixels
Display aspect ratio : 16:9
Frame rate : 23.976 fps
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Compression mode : Lossy
Bits/(Pixel*Frame) : 0.206
Stream size : 367 MiB (82%)
Writing library : XviD 1.2.1 (UTC 2008-12-04)
Audio #1
ID : 1
Format : MPEG Audio
Format version : Version 1
Format profile : Layer 3
Codec ID : 55
Codec ID/Hint : MP3
Duration : 43mn 11s
Bit rate mode : Constant
Bit rate : 128 Kbps
Channel count : 2 channels
Sampling rate : 48.0 KHz
Compression mode : Lossy
Stream size : 39.5 MiB (9%)
Alignment : Aligned on interleaves
Interleave, duration : 42 ms (1.00 video frame)
Interleave, preload duration : 504 ms
Writing library : LAME3.98r
Encoding settings : -m s -V 4 -q 2 -lowpass 17 -b 128
Audio #2
ID : 2
Format : MPEG Audio
Format version : Version 1
Format profile : Layer 3
Codec ID : 55
Codec ID/Hint : MP3
Duration : 43mn 11s
Bit rate mode : Constant
Bit rate : 128 Kbps
Channel count : 2 channels
Sampling rate : 48.0 KHz
Compression mode : Lossy
Stream size : 39.5 MiB (9%)
Alignment : Aligned on interleaves
Interleave, duration : 42 ms (1.00 video frame)
Interleave, preload duration : 504 ms
Writing library : LAME3.98r
Encoding settings : -m s -V 4 -q 2 -lowpass 17 -b 128$ ffmpeg -i "infile.avi" -map 0:0 -map 0:2 -map 0:1 -c copy "outfile.avi"
ffmpeg version 3.1.1 Copyright (c) 2000-2016 the FFmpeg developers
built with Apple LLVM version 5.1 (clang-503.0.40) (based on LLVM 3.4svn)
configuration: --prefix=/usr/local/Cellar/ffmpeg/3.1.1 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-opencl --enable-libx264 --enable-libmp3lame --enable-libxvid --enable-libsnappy --enable-libfontconfig --enable-libfreetype --enable-libtheora --enable-libvorbis --enable-libvpx --enable-librtmp --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libfaac --enable-libass --enable-ffplay --enable-libssh --enable-libspeex --enable-libschroedinger --enable-libfdk-aac --enable-openssl --enable-libopus --enable-frei0r --enable-libcaca --enable-libsoxr --enable-libvidstab --enable-libx265 --enable-libwebp --enable-libbs2b --enable-librubberband --enable-libopenh264 --disable-lzma --enable-libopenjpeg --disable-decoder=jpeg2000 --extra-cflags=-I/usr/local/Cellar/openjpeg/1.5.2_1/include/openjpeg-1.5 --enable-nonfree --enable-vda
libavutil 55. 28.100 / 55. 28.100
libavcodec 57. 48.101 / 57. 48.101
libavformat 57. 41.100 / 57. 41.100
libavdevice 57. 0.101 / 57. 0.101
libavfilter 6. 47.100 / 6. 47.100
libavresample 3. 0. 0 / 3. 0. 0
libswscale 4. 1.100 / 4. 1.100
libswresample 2. 1.100 / 2. 1.100
libpostproc 54. 0.100 / 54. 0.100
Input #0, avi, from 'infile.avi':
Metadata:
encoder : VirtualDubMod 1.5.10.2 (build 2540/release)
Duration: 00:44:03.10, start: 0.000000, bitrate: 1434 kb/s
Stream #0:0: Video: mpeg4 (Advanced Simple Profile) (XVID / 0x44495658), yuv420p, 656x368 [SAR 1:1 DAR 41:23], 1164 kb/s, 23.98 fps, 23.98 tbr, 23.98 tbn, 23.98 tbc
Stream #0:1: Audio: mp3 (U[0][0][0] / 0x0055), 48000 Hz, stereo, s16p, 128 kb/s
Stream #0:2: Audio: mp3 (U[0][0][0] / 0x0055), 48000 Hz, stereo, s16p, 128 kb/s
[avi @ 0x7f826b03d200] Using AVStream.codec to pass codec parameters to muxers is deprecated, use AVStream.codecpar instead.
Last message repeated 2 times
Output #0, avi, to 'outfile.avi':
Metadata:
ISFT : Lavf57.41.100
Stream #0:0: Video: mpeg4 (XVID / 0x44495658), yuv420p, 656x368 [SAR 1:1 DAR 41:23], q=2-31, 1164 kb/s, 23.98 fps, 23.98 tbr, 23.98 tbn, 23.98 tbc
Stream #0:1: Audio: mp3 (U[0][0][0] / 0x0055), 48000 Hz, stereo, 128 kb/s
Stream #0:2: Audio: mp3 (U[0][0][0] / 0x0055), 48000 Hz, stereo, 128 kb/s
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Stream #0:2 -> #0:1 (copy)
Stream #0:1 -> #0:2 (copy)
Press [q] to stop, [?] for help
[avi @ 0x7f826b03d200] Timestamps are unset in a packet for stream 0. This is deprecated and will stop working in the future. Fix your code to set the timestamps properly
frame=63371 fps=1830 q=-1.0 Lsize= 465060kB time=00:44:03.10 bitrate=1441.4kbits/s speed=76.3x
video:375760kB audio:82597kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 1.462486%infile.avi 474 MB
outfile.avi 476.2 MB
-
Python cv2 script that scans a giant image to a video. Raises error : Unknown C++ exception from OpenCV code
26 avril 2022, par MahrarenaI wrote a script that scans a giant image to make a video. Normally I just post my scripts straight to my Code Review account, but this script is ugly, needs to be refactored, implements only horizontal scrolling and contains a bug that I can't get rid of.


It is working but not perfect, I can't get the last line at the bottom of the image, with height of
image_height % 1080
. If I ignore it, the code is working fine, if I try to fix it, it throws exceptions.

Example :


Original image (Google Drive)


Video Output (Google Drive)


As you can see from the video, everything is working properly except the fact that I can't get the bottom line.


Full working code



import cv2
import numpy as np
import random
import rpack
from fractions import Fraction
from math import prod

def resize_guide(image_size, target_area):
 aspect_ratio = Fraction(*image_size).limit_denominator()
 horizontal = aspect_ratio.numerator
 vertical = aspect_ratio.denominator
 unit_length = (target_area/(horizontal*vertical))**.5
 return (int(horizontal*unit_length), int(vertical*unit_length))

fourcc = cv2.VideoWriter_fourcc(*'h264')
FRAME = np.zeros((1080, 1920, 3), dtype=np.uint8)

def new_frame():
 return np.ndarray.copy(FRAME)

def center(image):
 frame = new_frame()
 h, w = image.shape[:2]
 yoff = round((1080-h)/2)
 xoff = round((1920-w)/2)
 frame[yoff:yoff+h, xoff:xoff+w] = image
 return frame

def image_scanning(file, fps=60, pan_increment=64, horizontal_increment=8, fast_decrement=256):
 image = cv2.imread(file)
 height, width = image.shape[:2]
 assert width*height >= 1920*1080
 video_writer = cv2.VideoWriter(file+'.mp4', fourcc, fps, (1920, 1080))
 fit_height = True
 if height < 1080:
 width = width*1080/height
 image = cv2.resize(image, (width, 1080), interpolation = cv2.INTER_AREA)
 aspect_ratio = width / height
 zooming_needed = False
 if 4/9 <= aspect_ratio <= 16/9:
 new_width = round(width*1080/height)
 fit = cv2.resize(image, (new_width, 1080), interpolation = cv2.INTER_AREA)
 zooming_needed = True
 
 elif 16/9 < aspect_ratio <= 32/9:
 new_height = round(height*1920/width)
 fit = cv2.resize(image, (1920, new_height), interpolation = cv2.INTER_AREA)
 fit_height = False
 zooming_needed = True
 
 centered = center(fit)
 for i in range(fps):
 video_writer.write(centered)
 if fit_height:
 xoff = round((1920 - new_width)/2)
 while xoff:
 if xoff - pan_increment >= 0:
 xoff -= pan_increment
 else:
 xoff = 0
 frame = new_frame()
 frame[0:1080, xoff:xoff+new_width] = fit
 video_writer.write(frame)
 else:
 yoff = round((1080 - new_height)/2)
 while yoff:
 if yoff - pan_increment >= 0:
 yoff -= pan_increment
 else:
 yoff = 0
 frame = new_frame()
 frame[yoff:yoff+new_height, 0:1920] = fit
 video_writer.write(frame)
 
 if zooming_needed:
 if fit_height:
 width_1, height_1 = new_width, 1080
 else:
 width_1, height_1 = 1920, new_height
 new_area = width_1 * height_1
 original_area = width * height
 area_diff = original_area - new_area
 unit_diff = area_diff / fps
 for i in range(1, fps+1):
 zoomed = cv2.resize(image, resize_guide((width_1, height_1), new_area+unit_diff*i), interpolation=cv2.INTER_AREA)
 zheight, zwidth = zoomed.shape[:2]
 zheight = min(zheight, 1080)
 zwidth = min(zwidth, 1920)
 frame = new_frame()
 frame[0:zheight, 0:zwidth] = zoomed[0:zheight, 0:zwidth]
 video_writer.write(frame)
 y, x = 0, 0
 completed = False
 while y != height - 1080:
 x = 0
 while x != width - 1920:
 if x + horizontal_increment + 1920 <= width:
 x += horizontal_increment
 frame = image[y:y+1080, x:x+1920]
 video_writer.write(frame)
 else:
 x = width - 1920
 frame = image[y:y+1080, x:x+1920]
 for i in range(round(fps/3)):
 video_writer.write(frame)
 if y == height - 1080:
 completed = True
 while x != 0:
 if x - fast_decrement - 1920 >= 0:
 x -= fast_decrement
 else:
 x = 0
 frame = image[y:y+1080, x:x+1920]
 video_writer.write(frame)
 if y + 2160 <= height:
 y += 1080
 else:
 y = height - 1080
 cv2.destroyAllWindows()
 video_writer.release()
 del video_writer



The above the the code needed to produce the example video. It is working but the bottom line is missing.


Now if I change the last few lines to this :


if y + 2160 <= height:
 y += 1080
 else:
 y = height - 1080
 x = 0
 while x != width - 1920:
 if x + horizontal_increment + 1920 <= width:
 x += horizontal_increment
 frame = image[y:y+1080, x:x+1920]
 video_writer.write(frame)
 cv2.destroyAllWindows()
 video_writer.release()
 del video_writer



I expect it to include the bottom line, but it just throws exceptions instead :


OpenCV: FFMPEG: tag 0x34363268/'h264' is not supported with codec id 27 and format 'mp4 / MP4 (MPEG-4 Part 14)'
OpenCV: FFMPEG: fallback to use tag 0x31637661/'avc1'
---------------------------------------------------------------------------
error Traceback (most recent call last)
 in <module>
----> 1 image_scanning("D:/collages/91f53ebcea2a.png")

 in image_scanning(file, fps, pan_increment, horizontal_increment, fast_decrement)
 122 x += horizontal_increment
 123 frame = image[y:y+1080, x:x+1920]
--> 124 video_writer.write(frame)
 125 cv2.destroyAllWindows()
 126 video_writer.release()

error: Unknown C++ exception from OpenCV code
</module>


(If you can't get the example code working I can't help you, but I am using Python 3.9.10 x64 on Windows 10, and I have this file : "C :\Windows\System32\openh264-1.8.0-win64.dll", the '.avi' format generates video files with Gibibytes (binary unit, not SI Gigabyte) of size)


How to get rid of the exception ?



Okay I yield, I admit the tone of the original post was very aggressive and provoking, but I was very frustrated and I really don't know why my posts keep getting downvoted. Now I deleted all offending portions so will you people please really have a look at my code and tell me what I did wrong. I can solve it by myself, I always do, but I am so stupid I can spend hours missing the obvious. So please will you help me ?


-
licheepi zero V3S ffmpeg photo error, kernel uboot is OK
24 juillet 2023, par xiaocijunI use firmware built by someone else and can take photos using fswebcam. Then I changed the root file system to I built Debian with ffmpeg.


I used this command to test my camera


ffmpeg-f v4l2-video_size 800x600 -i /dev/video0-frames 1 out.jpg


But the command line prompts an error


[video4linux2,v4l2 @ 0x5231e0] ioctl(VIDIOC_G_PARM): Inappropriate ioctl for device
[video4linux2,v4l2 @ 0x5231e0] Time per frame unknown
[ 655.763013] ffmpeg: page allocation failure: order:8, mode:0xcc0(GFP_KERNEL), nodemask=(null)
[ 655.771678] CPU: 0 PID: 236 Comm: ffmpeg Not tainted 5.2.0-licheepi-zero #1
[ 655.778630] Hardware name: Allwinner sun8i Family
[ 655.783363] [<c010ed14>] (unwind_backtrace) from [<c010b72c>] (show_stack+0x10/0x14)
[ 655.791107] [<c010b72c>] (show_stack) from [<c0699330>] (dump_stack+0x84/0x98)
[ 655.798330] [<c0699330>] (dump_stack) from [<c01fbf30>] (warn_alloc+0xcc/0x170)
[ 655.805638] [<c01fbf30>] (warn_alloc) from [<c01fcb40>] (__alloc_pages_nodemask+0xacc/0xcf4)
[ 655.814070] [<c01fcb40>] (__alloc_pages_nodemask) from [<c0114350>] (__dma_alloc_buffer.constprop.4+0x34/0x17c)
[ 655.824147] [<c0114350>] (__dma_alloc_buffer.constprop.4) from [<c01144bc>] (__alloc_remap_buffer+0x24/0x98)
[ 655.833962] [<c01144bc>] (__alloc_remap_buffer) from [<c0114558>] (remap_allocator_alloc+0x28/0x30)
[ 655.842996] [<c0114558>] (remap_allocator_alloc) from [<c01146fc>] (__dma_alloc+0x16c/0x2c8)
[ 655.851424] [<c01146fc>] (__dma_alloc) from [<c01148d4>] (arm_dma_alloc+0x40/0x48)
[ 655.858988] [<c01148d4>] (arm_dma_alloc) from [<c017c928>] (dma_alloc_attrs+0x100/0x110)
[ 655.867080] [<c017c928>] (dma_alloc_attrs) from [<c0512da0>] (vb2_dc_alloc+0x60/0x104)
[ 655.874994] [<c0512da0>] (vb2_dc_alloc) from [<c050ccac>] (__vb2_queue_alloc+0x184/0x444)
[ 655.883165] [<c050ccac>] (__vb2_queue_alloc) from [<c050d4bc>] (vb2_core_reqbufs+0x2c4/0x440)
[ 655.891681] [<c050d4bc>] (vb2_core_reqbufs) from [<c0510d34>] (vb2_ioctl_reqbufs+0xa0/0xc8)
[ 655.900029] [<c0510d34>] (vb2_ioctl_reqbufs) from [<c04ecd20>] (__video_do_ioctl+0x288/0x454)
[ 655.908549] [<c04ecd20>] (__video_do_ioctl) from [<c04ed280>] (video_usercopy+0x23c/0x504)
[ 655.916808] [<c04ed280>] (video_usercopy) from [<c02287a8>] (do_vfs_ioctl+0xac/0x8cc)
[ 655.924631] [<c02287a8>] (do_vfs_ioctl) from [<c0228ffc>] (ksys_ioctl+0x34/0x58)
[ 655.932021] [<c0228ffc>] (ksys_ioctl) from [<c0101000>] (ret_fast_syscall+0x0/0x54)
[ 655.939665] Exception stack(0xc3173fa8 to 0xc3173ff0)
[ 655.944713] 3fa0: 005231e0 00000000 00000003 c0145608 beab41f8 b5857af1
[ 655.952882] 3fc0: 005231e0 00000000 beab4290 00000036 ffffffe7 00000000 005238c0 beab41f8
[ 655.961047] 3fe0: 00000001 beab41b4 b6f167b7 b5857af8
[ 655.966218] Mem-Info:
[ 655.968511] active_anon:3427 inactive_anon:154 isolated_anon:1
[ 655.968511] active_file:3577 inactive_file:2858 isolated_file:1
[ 655.968511] unevictable:4 dirty:7 writeback:0 unstable:0
[ 655.968511] slab_reclaimable:630 slab_unreclaimable:1467
[ 655.968511] mapped:5008 shmem:429 pagetables:140 bounce:0
[ 655.968511] free:1421 free_pcp:17 free_cma:0
[ 656.000905] Node 0 active_anon:13708kB inactive_anon:616kB active_file:14308kB inactive_file:11432kB unevictable:16kB isolated(anon):4kB isolated(file):4kB mapped:20032kB dirty:28kB writeback:0kB shmem:1716kB writeback_tmp:0kB unstable:0kB all_unreclaimable? no
[ 656.024016] Normal free:5684kB min:936kB low:1168kB high:1400kB active_anon:13708kB inactive_anon:616kB active_file:14308kB inactive_file:11432kB unevictable:16kB writepending:28kB present:65536kB managed:56092kB mlocked:16kB kernel_stack:392kB pagetables:560kB bounce:0kB free_pcp:68kB local_pcp:68kB free_cma:0kB
[ 656.051697] lowmem_reserve[]: 0 0 0
[ 656.055185] Normal: 173*4kB (ME) 87*8kB (UME) 51*16kB (ME) 25*32kB (ME) 12*64kB (ME) 7*128kB (M) 2*256kB (M) 1*512kB (M) 0*1024kB 0*2048kB 0*4096kB = 5692kB
[ 656.069205] 6865 total pagecache pages
[ 656.072949] 0 pages in swap cache
[ 656.076271] Swap cache stats: add 0, delete 0, find 0/0
[ 656.081486] Free swap = 0kB
[ 656.084360] Total swap = 0kB
[ 656.087252] 16384 pages RAM
[ 656.090040] 0 pages HighMem/MovableOnly
[ 656.093868] 2361 pages reserved
[ 656.097039] sun6i-csi 1cb4000.csi: dma_alloc_coherent of size 720896 failed
[video4linux2,v4l2 @ 0x5231e0] ioctl(VIDIOC_REQBUFS): Cannot allocate memory
/dev/video0: Cannot allocate memory
</c0101000></c0228ffc></c0228ffc></c02287a8></c02287a8></c04ed280></c04ed280></c04ecd20></c04ecd20></c0510d34></c0510d34></c050d4bc></c050d4bc></c050ccac></c050ccac></c0512da0></c0512da0></c017c928></c017c928></c01148d4></c01148d4></c01146fc></c01146fc></c0114558></c0114558></c01144bc></c01144bc></c0114350></c0114350></c01fcb40></c01fcb40></c01fbf30></c01fbf30></c0699330></c0699330></c010b72c></c010b72c></c010ed14>