
Recherche avancée
Autres articles (83)
-
Emballe médias : à quoi cela sert ?
4 février 2011, parCe plugin vise à gérer des sites de mise en ligne de documents de tous types.
Il crée des "médias", à savoir : un "média" est un article au sens SPIP créé automatiquement lors du téléversement d’un document qu’il soit audio, vidéo, image ou textuel ; un seul document ne peut être lié à un article dit "média" ; -
Gestion des droits de création et d’édition des objets
8 février 2011, parPar défaut, beaucoup de fonctionnalités sont limitées aux administrateurs mais restent configurables indépendamment pour modifier leur statut minimal d’utilisation notamment : la rédaction de contenus sur le site modifiables dans la gestion des templates de formulaires ; l’ajout de notes aux articles ; l’ajout de légendes et d’annotations sur les images ;
-
Supporting all media types
13 avril 2011, parUnlike most software and media-sharing platforms, MediaSPIP aims to manage as many different media types as possible. The following are just a few examples from an ever-expanding list of supported formats : images : png, gif, jpg, bmp and more audio : MP3, Ogg, Wav and more video : AVI, MP4, OGV, mpg, mov, wmv and more text, code and other data : OpenOffice, Microsoft Office (Word, PowerPoint, Excel), web (html, CSS), LaTeX, Google Earth and (...)
Sur d’autres sites (3934)
-
Stream specifier ':a' in filtergraph description [0:v][0:a][1:v][1:a]concat=a=1:n=2:v=1[s0][s1] matches no streams
6 septembre 2022, par MashI am using ffmpeg-python and I am trying to make a code that gets all the clips from a folder, converts all of them to the same format then merge all of them with their audio to one final video file.


Here is how the python script looks like


import os
import ffmpeg

dir = "./clips/"

# Reshape video
for f in os.listdir(dir):
 (
 ffmpeg
 .input(os.path.join(dir, f))
 .filter("scale", size="hd1080", force_original_aspect_ratio="increase")
 .filter('fps', fps=60, round='up')
 .output(str(os.path.join(dir, f))[:-4] + "_reshaped.mp4")
 .run()
 )

# Select reshaped video
files = []

for f in os.listdir(dir):
 if "_reshaped.mp4" in str(os.path.join(dir, f)):
 files.append(ffmpeg.input(str(os.path.join(dir, f))))

# eparate video and audio, then flat the array
video_and_audios_files = [item for sublist in map(lambda f: [f.video, f.audio], files) for item in sublist]

# concat all
joined = (
 ffmpeg
 .concat(*video_and_audios_files, v=1, a=1)
 .node
)

# merge video and audio
(
 ffmpeg
 .output(joined[0], joined[1], "./out.mp4")
 .run()
)




Now here is my output, this is the output of the part of the code that merges every clip into one (aka the merge video and audio section of the code)


ffmpeg version 5.1.1-essentials_build-www.gyan.dev Copyright (c) 2000-2022 the FFmpeg developers
 built with gcc 12.1.0 (Rev2, Built by MSYS2 project)
 configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-lzma --enable-zlib --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-sdl2 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libaom --enable-libopenjpeg --enable-libvpx --enable-libass --enable-libfreetype --enable-libfribidi --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf 
--enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-d3d11va --enable-dxva2 --enable-libmfx --enable-libgme --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libtheora --enable-libvo-amrwbenc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-librubberband
 libavutil 57. 28.100 / 57. 28.100
 libavcodec 59. 37.100 / 59. 37.100
 libavformat 59. 27.100 / 59. 27.100
 libavdevice 59. 7.100 / 59. 7.100
 libavfilter 8. 44.100 / 8. 44.100
 libswscale 6. 7.100 / 6. 7.100
 libswresample 4. 7.100 / 4. 7.100
 libpostproc 56. 6.100 / 56. 6.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from './clips/clip1_reshaped.mp4':
 Metadata:
 major_brand : isom
 minor_version : 512
 compatible_brands: isomiso2avc1mp41
 encoder : Lavf59.27.100
 Duration: 00:00:26.02, start: 0.000000, bitrate: 7432 kb/s
 Stream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709, progressive), 1920x1080 [SAR 1:1 DAR 16:9], 7425 kb/s, 60 fps, 60 tbr, 15360 tbn (default) 
 Metadata:
 handler_name : VideoHandler
 vendor_id : [0][0][0][0]
 encoder : Lavc59.37.100 libx264
Input #1, mov,mp4,m4a,3gp,3g2,mj2, from './clips/clip2_reshaped.mp4':
 Metadata:
 major_brand : isom
 minor_version : 512
 compatible_brands: isomiso2avc1mp41
 encoder : Lavf59.27.100
 Duration: 00:00:05.00, start: 0.000000, bitrate: 11445 kb/s
 Stream #1:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, unknown/bt709/unknown, progressive), 1920x1080, 11438 kb/s, 60 fps, 60 tbr, 15360 tbn (default) 
 Metadata:
 handler_name : VideoHandler
 vendor_id : [0][0][0][0]
 encoder : Lavc59.37.100 libx264
Stream specifier ':a' in filtergraph description [0:v][0:a][1:v][1:a]concat=a=1:n=2:v=1[s0][s1] matches no streams.
Traceback (most recent call last):
 File "c:\Users\USERNAME\Desktop\auto_poster\concat_vids.py", line 38, in <module>
 .run()
 File "C:\Users\USERNAME\AppData\Local\Programs\Python\Python310\lib\site-packages\ffmpeg\_run.py", line 325, in run
 raise Error('ffmpeg', out, err)
ffmpeg._run.Error: ffmpeg error (see stderr output for detail)
</module>


Can I get some help please ? I am on Windows 10


-
How do I convert that mp4 to the same format as this ts ?
5 septembre 2022, par Orlando BloomGeneral
Complete name : D:/aaa.mp4
Format : MPEG-4
Format profile : Base Media
Codec ID : isom (isom/iso2/avc1/mp41)
File size : 2.73 MiB
Duration : 6 s 154 ms
Overall bit rate mode : Variable
Overall bit rate : 3 715 kb/s
Encoded date : UTC 2022-09-04 09:49:04
Tagged date : UTC 2022-09-04 09:49:05

Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : High@L3.1
Format settings : CABAC / 2 Ref Frames
Format settings, CABAC : Yes
Format settings, Reference frames : 2 frames
Codec ID : avc1
Codec ID/Info : Advanced Video Coding
Duration : 6 s 134 ms
Bit rate mode : Variable
Bit rate : 3 578 kb/s
Maximum bit rate : 4 320 kb/s
Width : 856 pixels
Height : 480 pixels
Display aspect ratio : 16:9
Frame rate mode : Constant
Frame rate : 30.000 FPS
Standard : Component
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.290
Stream size : 2.62 MiB (96%)
Encoded date : UTC 2022-09-04 09:49:04
Tagged date : UTC 2022-09-04 09:49:05
Color range : Limited
Color primaries : BT.709
Transfer characteristics : BT.709
Matrix coefficients : BT.709
Codec configuration box : avcC

Audio
ID : 2
Format : AAC LC
Format/Info : Advanced Audio Codec Low Complexity
Codec ID : mp4a-40-2
Duration : 6 s 154 ms
Source duration : 6 s 200 ms
Bit rate mode : Variable
Bit rate : 137 kb/s
Maximum bit rate : 320 kb/s / 320 kb/s
Channel(s) : 2 channels
Channel layout : L R
Sampling rate : 44.1 kHz
Frame rate : 43.066 FPS (1024 SPF)
Compression mode : Lossy
Stream size : 104 KiB (4%)
Source stream size : 104 KiB (4%)
Default : Yes
Alternate group : 1
Encoded date : UTC 2022-09-04 09:49:04
Tagged date : UTC 2022-09-04 09:49:05
mdhd_Duration : 6153





General
ID : 1 (0x1)
Complete name : D:/bbb.ts
Format : MPEG-TS
File size : 3.13 MiB
Duration : 10 s 763 ms
Overall bit rate mode : Variable
Overall bit rate : 2 434 kb/s

Video
ID : 256 (0x100)
Menu ID : 1 (0x1)
Format : AVC
Format/Info : Advanced Video Codec
Format profile : High@L3.2
Format settings : CABAC / 4 Ref Frames
Format settings, CABAC : Yes
Format settings, Reference frames : 4 frames
Codec ID : 27
Duration : 10 s 780 ms
Width : 1 080 pixels
Height : 606 pixels
Display aspect ratio : 16:9
Frame rate mode : Variable
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Writing library : x264 core 142
Encoding settings : cabac=1 / ref=2 / deblock=1:0:0 / analyse=0x3:0x113 / me=hex / subme=4 / psy=1 / psy_rd=1.00:0.00 / mixed_ref=0 / me_range=16 / chroma_me=1 / trellis=1 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=0 / threads=48 / lookahead_threads=4 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=3 / b_pyramid=2 / b_adapt=1 / b_bias=0 / direct=1 / weightb=1 / open_gop=0 / weightp=1 / keyint=250 / keyint_min=25 / scenecut=40 / intra_refresh=0 / rc_lookahead=20 / rc=crf / mbtree=1 / crf=23.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / ip_ratio=1.40 / aq=1:1.00

Audio
ID : 257 (0x101)
Menu ID : 1 (0x1)
Format : AAC LC
Format/Info : Advanced Audio Codec Low Complexity
Format version : Version 4
Muxing mode : ADTS
Codec ID : 15-2
Duration : 10 s 750 ms
Bit rate mode : Variable
Channel(s) : 2 channels
Channel layout : L R
Sampling rate : 44.1 kHz
Frame rate : 43.066 FPS (1024 SPF)
Compression mode : Lossy
Delay relative to video : -23 ms





I tried "ffmpeg -i aaa.mp4 -c:v libx264 -c:a aac bbb.ts"


But the two converted ts, "-c copy" into a new mp4 cannot be played in the iPhone default player


I think my use of "ffmpeg -i aaa.mp4 -c:v libx264 -c:a aac bbb.ts" is wrong,


The following is the filler text, do not look


It looks like your post is mostly code ; please add some more details.
It looks like your post is mostly code ; please add some more details.
It looks like your post is mostly code ; please add some more details.


-
Laravel ffmpeg failed to execute command
4 septembre 2022, par John smithI'm using protonemedia/laravel-ffmpeg package everything works fine on localhost but on the live server, there is an error message shown.


ProtoneMedia\ LaravelFFMpeg\ Exporters\ EncodingException

ffmpeg failed to execute command '/usr/bin/ffmpeg' '-y' '-threads' '12' '-i' '/www/wwwroot/hamza/storage/app/upload/videos/uofH50IWXt3Doqacxkd2tATboUT5gLfVGaAWyvsS.mp4' '-map' '0' '-vcodec' 'libx264' '-b:v' '1000k' '-sc_threshold' '0' '-g' '48' '-hls_playlist_type' 'vod' '-hls_time' '10' '-hls_segment_filename' '/www/wwwroot/hamza/storage/app/streamable_videos/21_0_1000_%05d.ts' '-master_pl_name' 'temporary_segment_playlist_0.m3u8' '-acodec' 'aac' '-b:a' '128k' '/www/wwwroot/hamza/storage/app/streamable_videos/21_0_1000.m3u8': Error Output: ffmpeg version 3.4.11 Copyright (c) 2000-2022 the FFmpeg developers built with gcc 4.8.5 (GCC) 20150623 (Red Hat 4.8.5-44) configuration: --prefix=/usr --bindir=/usr/bin --datadir=/usr/share/ffmpeg --docdir=/usr/share/doc/ffmpeg --incdir=/usr/include/ffmpeg --libdir=/usr/lib64 --mandir=/usr/share/man --arch=x86_64 --optflags='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic' --extra-ldflags='-Wl,-z,relro ' --extra-cflags=' ' --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libvo-amrwbenc --enable-version3 --enable-bzlib --disable-crystalhd --enable-fontconfig --enable-gcrypt --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libcdio --enable-libdrm --enable-indev=jack --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libmp3lame --enable-nvenc --enable-openal --enable-opencl --enable-opengl --enable-libopenjpeg --enable-libopus --disable-encoder=libopus --enable-libpulse --enable-librsvg --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libv4l2 --enable-libvidstab --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxvid --enable-libzvbi --enable-avfilter --enable-avresample --enable-libmodplug --enable-postproc --enable-pthreads --disable-static --enable-shared --enable-gpl --disable-debug --disable-stripping --shlibdir=/usr/lib64 --enable-libmfx --enable-runtime-cpudetect libavutil 55. 78.100 / 55. 78.100 libavcodec 57.107.100 / 57.107.100 libavformat 57. 83.100 / 57. 83.100 libavdevice 57. 10.100 / 57. 10.100 libavfilter 6.107.100 / 6.107.100 libavresample 3. 7. 0 / 3. 7. 0 libswscale 4. 8.100 / 4. 8.100 libswresample 2. 9.100 / 2. 9.100 libpostproc 54. 7.100 / 54. 7.100 Unrecognized option 'master_pl_name'. Error splitting the argument list: Option not found



I'm using a job to do conversation


ConvertVideoForStreaming.php Job :


<?php

namespace App\Jobs;
set_time_limit(60000);

use FFMpeg;
use Carbon\Carbon;
use App\Models\Video;
use FFMpeg\Format\Video\X264;
use Illuminate\Bus\Queueable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Facades\Storage;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;

class ConvertVideoForStreaming implements ShouldQueue
{
 use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;

 public $video;

 public function __construct(Video $video)
 {
 $this->video = $video;
 }

 public function handle()
 {
 // create some video formats...
 $lowBitrateFormat = (new X264)->setKiloBitrate(500);
 $highBitrateFormat = (new X264)->setKiloBitrate(3000);

 // open the uploaded video from the right disk...
 FFMpeg::fromDisk($this->video->disk)
 ->open($this->video->path)

 // call the 'exportForHLS' method and specify the disk to which we want to export...
 ->exportForHLS()
 ->withRotatingEncryptionKey(function ($filename, $contents) {
 Storage::disk('streamable_keys')->put($filename, $contents);
 })
 // we'll add different formats so the stream will play smoothly
 // with all kinds of internet connections...
 ->addFormat($lowBitrateFormat)
 ->addFormat($highBitrateFormat)

 // call the 'save' method with a filename...
 ->toDisk('streamable_videos')
 ->save($this->video->id . '.m3u8');

 // update the database so we know the convertion is done!
 $this->video->update([
 'converted_for_streaming_at' => Carbon::now(),
 ]);
 }
}



I'm storing the key at custom disk "streamable_keys", and converted videos should be stored in "streamable_videos".


the streamable keys are generated and saved to a directory without any issues, but streamable videos are not saved to the directory.


after some tracks I found that the problem happens in this line of code :


->save($this->video->id . '.m3u8');



all the lines before that line work perfectly.


any ideas on how to fix that ?