
Recherche avancée
Médias (17)
-
Matmos - Action at a Distance
15 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
-
DJ Dolores - Oslodum 2004 (includes (cc) sample of “Oslodum” by Gilberto Gil)
15 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
-
Danger Mouse & Jemini - What U Sittin’ On ? (starring Cee Lo and Tha Alkaholiks)
15 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
-
Cornelius - Wataridori 2
15 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
-
The Rapture - Sister Saviour (Blackstrobe Remix)
15 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
-
Chuck D with Fine Arts Militia - No Meaning No
15 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
Autres articles (103)
-
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 -
Use, discuss, criticize
13 avril 2011, parTalk to people directly involved in MediaSPIP’s development, or to people around you who could use MediaSPIP to share, enhance or develop their creative projects.
The bigger the community, the more MediaSPIP’s potential will be explored and the faster the software will evolve.
A discussion list is available for all exchanges between users. -
Encoding and processing into web-friendly formats
13 avril 2011, parMediaSPIP automatically converts uploaded files to internet-compatible formats.
Video files are encoded in MP4, Ogv and WebM (supported by HTML5) and MP4 (supported by Flash).
Audio files are encoded in MP3 and Ogg (supported by HTML5) and MP3 (supported by Flash).
Where possible, text is analyzed in order to retrieve the data needed for search engine detection, and then exported as a series of image files.
All uploaded files are stored online in their original format, so you can (...)
Sur d’autres sites (7571)
-
Executing shell script on Google Cloud Functions
9 juillet 2020, par João AbrantesI am trying to encode .mp4 videos into hls using FFmpeg.


I am using
subprocess
to call FFmpeg :

def transcoder(data, context):
 """Background Cloud Function to be triggered by Cloud Storage.
 This generic function logs relevant data when a file is changed.

 Args:
 data (dict): The Cloud Functions event payload.
 context (google.cloud.functions.Context): Metadata of triggering event.
 Returns:
 None; the output is written to Stackdriver Logging
 """
 try:
 input_filename = data['name'].split('/')[-1] #videos have no extension
 input_path = f'/tmp/{input_filename}'
 print(f'filename {input_filename}')
 print(f'input_path {input_path}')
 print(f"bucket {data['bucket']}")
 print(f"name {data['name']}")

 outdir_path = f'/tmp/output/{input_filename}'
 os.makedirs(outdir_path, exist_ok=True)

 bucket = client.get_bucket(data['bucket'])
 blob = bucket.get_blob(data['name'])
 blob.download_to_filename(input_path)

 cmd = f'''ffmpeg -y -i {input_path} \
 -preset ultrafast -g 60 -sc_threshold 0 \
 -map 0:0 -map 0:1 -map 0:0 -map 0:1 \
 -s:v:0 360x640 -c:v:0 libx264 -b:v:0 365k \
 -s:v:1 720x1280 -c:v:1 libx264 -b:v:1 3000k \
 -c:a copy \
 -var_stream_map "v:0,a:0 v:1,a:1" \
 -master_pl_name master.m3u8 \
 -f hls -hls_time 6 -hls_list_size 0 \
 -hls_segment_filename "{outdir_path}/%v_fileSequence%d.ts" \
 -hls_playlist_type vod \
 {outdir_path}/%v_prog_index.m3u8'''

 process = subprocess.Popen(cmd)
 stdout, stderr = process.communicate()
 upload_local_directory_to_gcs(outdir_path, upload_bucket, input_filename)
 except Exception as e:
 print(e)



The problem is that I get an error :


[Errno 2] No such file or directory: 'ffmpeg -y -i /tmp/video -preset ultrafast -g 60 -sc_threshold 0 -map 0:0 -map 0:1 -map 0:0 -map 0:1 -s:v:0 360x640 -c:v:0 libx264 -b:v:0 365k -s:v:1 720x1280 -c:v:1 libx264 -b:v:1 3000k -c:a copy -var_stream_map "v:0,a:0 v:1,a:1" -master_pl_name master.m3u8 -f hls -hls_time 6 -hls_list_size 0 -hls_segment_filename "/tmp/output/video/%v_fileSequence%d.ts" -hls_playlist_type vod /tmp/output/video/%v_prog_index.m3u8': 'ffmpeg -y -i /tmp/video -preset ultrafast -g 60 -sc_threshold 0 -map 0:0 -map 0:1 -map 0:0 -map 0:1 -s:v:0 360x640 -c:v:0 libx264 -b:v:0 365k -s:v:1 720x1280 -c:v:1 libx264 -b:v:1 3000k -c:a copy -var_stream_map "v:0,a:0 v:1,a:1" -master_pl_name master.m3u8 -f hls -hls_time 6 -hls_list_size 0 -hls_segment_filename "/tmp/output/video/%v_fileSequence%d.ts" -hls_playlist_type vod /tmp/output/video/%v_prog_index.m3u8'



But I know that the input files and the output files do exist because I debugged that using
print(os.listdir(path))
so now I am wondering if the FFmpeg I call with subprocess has access to the /tmp folder..?

I know that there is a Python FFmpeg library I could use, but I don't know how to run my FFmpeg command using that library. Can you help ?


p.s. I can run this locally with success.


-
ffmpeg to convert file to webm returns in error
14 avril 2019, par user3184895i have a self-recorded file in .ts format and want to convert it to three different formats(.mp4, .ogg and .webm).
for that i use my brandnew debian9 with following commands :
/usr/bin/ffmpeg -y -i source.ts -strict experimental -r 25 -b 18550k -bt 22792k -acodec aac -ac 2 -ar 48000 -ab 320k output.mp4
/usr/bin/ffmpeg -y -i source.ts -r 25 -b 18550k -bt 22792k -vcodec libtheora -acodec libvorbis -ac 2 -ar 48000 -ab 320k output.ogg
/usr/bin/ffmpeg -y -i source.ts -r 25 -b 18550k -bt 22792k -ac 2 -ar 48000 -ab 320k output.webm
Source-File :
General
ID : 1019 (0x3FB)
Complete name : test.ts
Format : MPEG-TS
File size : 85.9 MiB
Duration : 56 s 490 ms
Overall bit rate mode : Variable
Overall bit rate : 12.7 Mb/s
Video
ID : 5101 (0x13ED)
Menu ID : 10301 (0x283D)
Format : AVC
Format/Info : Advanced Video Codec
Format profile : High@L4
Format settings, CABAC : Yes
Format settings, ReFrames : 4 frames
Codec ID : 27
Duration : 55 s 880 ms
Bit rate : 11.1 Mb/s
Width : 1 280 pixels
Height : 720 pixels
Display aspect ratio : 16:9
Frame rate : 50.000 FPS
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.241
Stream size : 74.1 MiB (86%)
Audio #1
ID : 5102 (0x13EE)
Menu ID : 10301 (0x283D)
Format : MPEG Audio
Format version : Version 1
Format profile : Layer 2
Codec ID : 3
Duration : 56 s 448 ms
Bit rate mode : Constant
Bit rate : 256 kb/s
Channel(s) : 2 channels
Sampling rate : 48.0 kHz
Compression mode : Lossy
Delay relative to video : -1 s 136 ms
Stream size : 1.72 MiB (2%)
Language : German
Audio #2
ID : 5103 (0x13EF)
Menu ID : 10301 (0x283D)
Format : MPEG Audio
Format version : Version 1
Format profile : Layer 2
Codec ID : 3
Duration : 56 s 448 ms
Bit rate mode : Constant
Bit rate : 256 kb/s
Channel(s) : 2 channels
Sampling rate : 48.0 kHz
Compression mode : Lossy
Delay relative to video : -1 s 136 ms
Stream size : 1.72 MiB (2%)
descriptor_tag_extension : 6
Audio #3
ID : 5106 (0x13F2)
Menu ID : 10301 (0x283D)
Format : AC-3
Format/Info : Audio Coding 3
Mode extension : CM (complete main)
Format settings, Endianness : Big
Codec ID : 6
Duration : 56 s 480 ms
Bit rate mode : Constant
Bit rate : 448 kb/s
Channel(s) : 2 channels
Channel positions : Front: L R
Sampling rate : 48.0 kHz
Frame rate : 31.250 FPS (1536 spf)
Bit depth : 16 bits
Compression mode : Lossy
Delay relative to video : -1 s 168 ms
Stream size : 3.02 MiB (4%)
Language : German
Text
ID : 5105 (0x13F1)
Menu ID : 10301 (0x283D)
Format : DVB Subtitle
Codec ID : 6
Duration : 54 s 800 ms
Delay relative to video : 2 s 520 ms
Language : German
Other
ID : 5104 (0x13F0)-100
Menu ID : 10301 (0x283D)
Format : Teletext
Language : German
Menu
ID : 5100 (0x13EC)
Menu ID : 10301 (0x283D)
Duration : 56 s 490 ms
List : 1170 (0x492) () / 1176 (0x498) () / 2171 (0x87B) () / 5101 (0x13ED) (AVC) / 5102 (0x13EE) (MPEG Audio, German) / 5103 (0x13EF) (MPEG Audio) / 5104 (0x13F0)-100 (Teletext, de) / 5105 (0x13F1) (DVB Subtitle, German) / 5106 (0x13F2) (AC-3, German) / 5108 (0x13F4) () / 5172 (0x1434) ()
Language : / / / / German / / German / German / GermanWhy i am doing that ? I just play arround with a privat intranet (web-application) to stream my own recorded files on different clients (Smartphone, Tablet, Desktop). Thats also the reason for the different formats (.mp4, .ogg, .webm)
My current problem is : The command to convert it to .webm returns following error :
/usr/bin/ffmpeg -y -i test.ts -r 25 -b 18550k -bt 22792k -ac 2 -ar 48000 -ab 320k output.webm
ffmpeg version 3.2.12-1~deb9u1 Copyright (c) 2000-2018 the FFmpeg developers
built with gcc 6.3.0 (Debian 6.3.0-18+deb9u1) 20170516
configuration: --prefix=/usr --extra-version='1~deb9u1' --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --disable-stripping --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libebur128 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmp3lame --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libopencv --enable-libx264 --enable-shared
libavutil 55. 34.101 / 55. 34.101
libavcodec 57. 64.101 / 57. 64.101
libavformat 57. 56.101 / 57. 56.101
libavdevice 57. 1.100 / 57. 1.100
libavfilter 6. 65.100 / 6. 65.100
libavresample 3. 1. 0 / 3. 1. 0
libswscale 4. 2.100 / 4. 2.100
libswresample 2. 3.100 / 2. 3.100
libpostproc 54. 1.100 / 54. 1.100
[h264 @ 0x557535b03b40] SPS unavailable in decode_picture_timing
[h264 @ 0x557535b03b40] non-existing PPS 0 referenced
[h264 @ 0x557535b03b40] SPS unavailable in decode_picture_timing
[h264 @ 0x557535b03b40] non-existing PPS 0 referenced
[h264 @ 0x557535b03b40] decode_slice_header error
[h264 @ 0x557535b03b40] no frame!
[h264 @ 0x557535b03b40] SPS unavailable in decode_picture_timing
[h264 @ 0x557535b03b40] non-existing PPS 0 referenced
[h264 @ 0x557535b03b40] SPS unavailable in decode_picture_timing
[h264 @ 0x557535b03b40] non-existing PPS 0 referenced
[h264 @ 0x557535b03b40] decode_slice_header error
[h264 @ 0x557535b03b40] no frame!
[h264 @ 0x557535b03b40] SPS unavailable in decode_picture_timing
[h264 @ 0x557535b03b40] non-existing PPS 0 referenced
[h264 @ 0x557535b03b40] SPS unavailable in decode_picture_timing
[h264 @ 0x557535b03b40] non-existing PPS 0 referenced
[h264 @ 0x557535b03b40] decode_slice_header error
[h264 @ 0x557535b03b40] no frame!
[h264 @ 0x557535b03b40] SPS unavailable in decode_picture_timing
[h264 @ 0x557535b03b40] non-existing PPS 0 referenced
[h264 @ 0x557535b03b40] SPS unavailable in decode_picture_timing
[h264 @ 0x557535b03b40] non-existing PPS 0 referenced
[h264 @ 0x557535b03b40] decode_slice_header error
[h264 @ 0x557535b03b40] no frame!
[h264 @ 0x557535b03b40] SPS unavailable in decode_picture_timing
[h264 @ 0x557535b03b40] non-existing PPS 0 referenced
[h264 @ 0x557535b03b40] SPS unavailable in decode_picture_timing
[h264 @ 0x557535b03b40] non-existing PPS 0 referenced
[h264 @ 0x557535b03b40] decode_slice_header error
[h264 @ 0x557535b03b40] no frame!
[h264 @ 0x557535b03b40] SPS unavailable in decode_picture_timing
[h264 @ 0x557535b03b40] non-existing PPS 0 referenced
[h264 @ 0x557535b03b40] SPS unavailable in decode_picture_timing
[h264 @ 0x557535b03b40] non-existing PPS 0 referenced
[h264 @ 0x557535b03b40] decode_slice_header error
[h264 @ 0x557535b03b40] no frame!
[h264 @ 0x557535b03b40] SPS unavailable in decode_picture_timing
[h264 @ 0x557535b03b40] non-existing PPS 0 referenced
[h264 @ 0x557535b03b40] SPS unavailable in decode_picture_timing
[h264 @ 0x557535b03b40] non-existing PPS 0 referenced
[h264 @ 0x557535b03b40] decode_slice_header error
[h264 @ 0x557535b03b40] no frame!
[h264 @ 0x557535b03b40] SPS unavailable in decode_picture_timing
[h264 @ 0x557535b03b40] non-existing PPS 0 referenced
[h264 @ 0x557535b03b40] SPS unavailable in decode_picture_timing
[h264 @ 0x557535b03b40] non-existing PPS 0 referenced
[h264 @ 0x557535b03b40] decode_slice_header error
[h264 @ 0x557535b03b40] no frame!
[h264 @ 0x557535b03b40] SPS unavailable in decode_picture_timing
[h264 @ 0x557535b03b40] non-existing PPS 0 referenced
[h264 @ 0x557535b03b40] SPS unavailable in decode_picture_timing
[h264 @ 0x557535b03b40] non-existing PPS 0 referenced
[h264 @ 0x557535b03b40] decode_slice_header error
[h264 @ 0x557535b03b40] no frame!
[h264 @ 0x557535b03b40] SPS unavailable in decode_picture_timing
[h264 @ 0x557535b03b40] non-existing PPS 0 referenced
[h264 @ 0x557535b03b40] SPS unavailable in decode_picture_timing
[h264 @ 0x557535b03b40] non-existing PPS 0 referenced
[h264 @ 0x557535b03b40] decode_slice_header error
[h264 @ 0x557535b03b40] no frame!
[h264 @ 0x557535b03b40] SPS unavailable in decode_picture_timing
[h264 @ 0x557535b03b40] non-existing PPS 0 referenced
[h264 @ 0x557535b03b40] SPS unavailable in decode_picture_timing
[h264 @ 0x557535b03b40] non-existing PPS 0 referenced
[h264 @ 0x557535b03b40] decode_slice_header error
[h264 @ 0x557535b03b40] no frame!
[mpegts @ 0x557535ade440] start time for stream 9 is not set in estimate_timings_from_pts
[mpegts @ 0x557535ade440] PES packet size mismatch
[mpegts @ 0x557535ade440] Could not find codec parameters for stream 0 (Unknown: none ([5][0][0][0] / 0x0005)): unknown codec
Consider increasing the value for the 'analyzeduration' and 'probesize' options
[mpegts @ 0x557535ade440] Could not find codec parameters for stream 1 (Unknown: none ([12][0][0][0] / 0x000C)): unknown codec
Consider increasing the value for the 'analyzeduration' and 'probesize' options
[mpegts @ 0x557535ade440] Could not find codec parameters for stream 2 (Unknown: none ([11][0][0][0] / 0x000B)): unknown codec
Consider increasing the value for the 'analyzeduration' and 'probesize' options
[mpegts @ 0x557535ade440] Could not find codec parameters for stream 10 (Unknown: none ([11][0][0][0] / 0x000B)): unknown codec
Consider increasing the value for the 'analyzeduration' and 'probesize' options
Input #0, mpegts, from 'test.ts':
Duration: 00:00:58.04, start: 86615.181389, bitrate: 12418 kb/s
Program 10301
Stream #0:0[0x492]: Unknown: none ([5][0][0][0] / 0x0005)
Stream #0:1[0x498]: Unknown: none ([12][0][0][0] / 0x000C)
Stream #0:2[0x87b]: Unknown: none ([11][0][0][0] / 0x000B)
Stream #0:3[0x13ed]: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p(progressive), 1280x720 [SAR 1:1 DAR 16:9], 50 fps, 50 tbr, 90k tbn, 100 tbc
Stream #0:4[0x13ee](deu): Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, s16p, 256 kb/s
Stream #0:5[0x13ef](mis): Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, s16p, 256 kb/s
Stream #0:6[0x13f0](deu): Subtitle: dvb_teletext ([6][0][0][0] / 0x0006)
Stream #0:7[0x13f1](deu): Subtitle: dvb_subtitle ([6][0][0][0] / 0x0006) (hearing impaired)
Stream #0:8[0x13f2](deu): Audio: ac3 ([6][0][0][0] / 0x0006), 48000 Hz, stereo, fltp, 448 kb/s
Stream #0:9[0x13f4]: Data: bin_data ([6][0][0][0] / 0x0006)
Stream #0:10[0x1434]: Unknown: none ([11][0][0][0] / 0x000B)
Program 10302
Program 10303
Program 10304
Please use -b:a or -b:v, -b is ambiguous
[libvpx-vp9 @ 0x557535ba6d00] v1.6.1
Stream mapping:
Stream #0:3 -> #0:0 (h264 (native) -> vp9 (libvpx-vp9))
Stream #0:4 -> #0:1 (mp2 (native) -> opus (libopus))
Stream #0:6 -> #0:2 (dvb_teletext (libzvbi_teletextdec) -> webvtt (native))
Error while opening encoder for output stream #0:2 - maybe incorrect parameters such as bit_rate, rate, width or heighti dont understand the problem, because the convertions to .ogg or .mp4 are workin. So i cannot be a problem with the source-codecs. Does anyone have any idea what my problem might be
-
Overlay filter in LibAV/FFMpeg returns strange (tripled) frame in C
28 juillet 2014, par gkuczeraI tried to make a program, which merges two frames. I use LibAV (libav-win32-20140428) under Windows 7 64 and Visual Studio 2013.
But the result is quite odd.The filter which was used is Overlay. When I change the graph, to the one, that uses only one stream and add FADE effect, everything works like a charm. But OVERLAY and eg. DRAWBOX give me strange distortion (three frames on one and black and white effect). Here is the code :
static int init_filter_graph(AVFilterGraph **pGraph, AVFilterContext **pSrc1, AVFilterContext **pSink)
{
AVFilterGraph* tFilterGraph;
AVFilterContext* tBufferContext1;
AVFilter* tBuffer1;
AVFilterContext* tColorContext;
AVFilter* tColor;
AVFilterContext* tOverlayContext;
AVFilter* tOverlay;
AVFilterContext* tBufferSinkContext;
AVFilter* tBufferSink;
int tError;
/* Create a new filtergraph, which will contain all the filters. */
tFilterGraph = avfilter_graph_alloc();
if (!tFilterGraph) {
return -1;
}
{ // BUFFER FILTER 1
tBuffer1 = avfilter_get_by_name("buffer");
if (!tBuffer1) {
return -1;
}
tBufferContext1 = avfilter_graph_alloc_filter(tFilterGraph, tBuffer1, "src1");
if (!tBufferContext1) {
return -1;
}
av_dict_set(&tOptionsDict, "width", "320", 0);
av_dict_set(&tOptionsDict, "height", "240", 0);
av_dict_set(&tOptionsDict, "pix_fmt", "bgr24", 0);
av_dict_set(&tOptionsDict, "time_base", "1/25", 0);
av_dict_set(&tOptionsDict, "sar", "1", 0);
tError = avfilter_init_dict(tBufferContext1, &tOptionsDict);
av_dict_free(&tOptionsDict);
if (tError < 0) {
return tError;
}
}
{ // COLOR FILTER
tColor = avfilter_get_by_name("color");
if (!tColor) {
return -1;
}
tColorContext = avfilter_graph_alloc_filter(tFilterGraph, tColor, "color");
if (!tColorContext) {
return -1;
}
av_dict_set(&tOptionsDict, "color", "white", 0);
av_dict_set(&tOptionsDict, "size", "20x120", 0);
av_dict_set(&tOptionsDict, "framerate", "1/25", 0);
tError = avfilter_init_dict(tColorContext, &tOptionsDict);
av_dict_free(&tOptionsDict);
if (tError < 0) {
return tError;
}
}
{ // OVERLAY FILTER
tOverlay = avfilter_get_by_name("overlay");
if (!tOverlay) {
return -1;
}
tOverlayContext = avfilter_graph_alloc_filter(tFilterGraph, tOverlay, "overlay");
if (!tOverlayContext) {
return -1;
}
av_dict_set(&tOptionsDict, "x", "0", 0);
av_dict_set(&tOptionsDict, "y", "0", 0);
av_dict_set(&tOptionsDict, "main_w", "120", 0);
av_dict_set(&tOptionsDict, "main_h", "140", 0);
av_dict_set(&tOptionsDict, "overlay_w", "320", 0);
av_dict_set(&tOptionsDict, "overlay_h", "240", 0);
tError = avfilter_init_dict(tOverlayContext, &tOptionsDict);
av_dict_free(&tOptionsDict);
if (tError < 0) {
return tError;
}
}
{ // BUFFERSINK FILTER
tBufferSink = avfilter_get_by_name("buffersink");
if (!tBufferSink) {
return -1;
}
tBufferSinkContext = avfilter_graph_alloc_filter(tFilterGraph, tBufferSink, "sink");
if (!tBufferSinkContext) {
return -1;
}
tError = avfilter_init_str(tBufferSinkContext, NULL);
if (tError < 0) {
return tError;
}
}
// Linking graph
tError = avfilter_link(tBufferContext1, 0, tOverlayContext, 0);
if (tError >= 0) {
tError = avfilter_link(tColorContext, 0, tOverlayContext, 1);
}
if (tError >= 0) {
tError = avfilter_link(tOverlayContext, 0, tBufferSinkContext, 0);
}
if (tError < 0) {
return tError;
}
tError = avfilter_graph_config(tFilterGraph, NULL);
if (tError < 0) {
return tError;
}
*pGraph = tFilterGraph;
*pSrc1 = tBufferContext1;
*pSink = tBufferSinkContext;
return 0;
}What do you think is the reason ?