
Recherche avancée
Autres articles (31)
-
Mise à disposition des fichiers
14 avril 2011, parPar défaut, lors de son initialisation, MediaSPIP ne permet pas aux visiteurs de télécharger les fichiers qu’ils soient originaux ou le résultat de leur transformation ou encodage. Il permet uniquement de les visualiser.
Cependant, il est possible et facile d’autoriser les visiteurs à avoir accès à ces documents et ce sous différentes formes.
Tout cela se passe dans la page de configuration du squelette. Il vous faut aller dans l’espace d’administration du canal, et choisir dans la navigation (...) -
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 -
Récupération d’informations sur le site maître à l’installation d’une instance
26 novembre 2010, parUtilité
Sur le site principal, une instance de mutualisation est définie par plusieurs choses : Les données dans la table spip_mutus ; Son logo ; Son auteur principal (id_admin dans la table spip_mutus correspondant à un id_auteur de la table spip_auteurs)qui sera le seul à pouvoir créer définitivement l’instance de mutualisation ;
Il peut donc être tout à fait judicieux de vouloir récupérer certaines de ces informations afin de compléter l’installation d’une instance pour, par exemple : récupérer le (...)
Sur d’autres sites (4910)
-
Encode h264 to match existing stream
6 juin 2013, par Diego SánchezIn short : I have to encode a tiny amount of video frames and stitch them in front of a much bigger h.264 stream without reencoding said stream.
The details : I receive a multi GB transport stream containing a h.264 es and an audio es. Currently the h.264 streams are always generated using x264, and I can assume this will be the case in the future. Now I have to prepend some video frames to this stream, but am not allowed to decode/encode the whole stream ; which leaves me with the only option to find out the exact parameters I need to pass x264_encoder_open so both streams match.
Currently what I'm doing is :
- Demux the original ts and extract h.264 NAL packets.
- When I find the first "user data unregistered" SEI packet, I parse it and find a bunch of x264 parameters.
- Use libavcodec to start decoding the video. That gives me the dimensions of the picture and the h264 profile and level in the AVCodecContext structure.
- Match all of that as best as I can in the x264_param_t structure.
I can do some encoding with that, and the encoded video plays correctly up to the join point. When VLC is reaching the stitch point it starts throwing out the following sequence of messages and soon after stops playing :
[h264 @ 0x7fe36cd75be0] decode_slice_header error
[h264 @ 0x7fe36cd75be0] no frame!
[h264 @ 0x7fe36ccc9080] Width/height changing with threads is not implemented. Update your Libav version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented.which clearly shows that my encoded frames do not match the original ones. I've been browsing the source code and can't seem to find a way of doing this. What I have currently (besides not working), involves a lot of guesswork, so even if I could make it work with the handful of example files I have, I would be scared to deploy this in production servers.
So the obvious question is : Is there a safe, formal way of doing this ?
Thanks in Advance
-
Encode h264 to match existing stream
6 juin 2013, par Diego SánchezIn short : I have to encode a tiny amount of video frames and stitch them in front of a much bigger h.264 stream without reencoding said stream.
The details : I receive a multi GB transport stream containing a h.264 es and an audio es. Currently the h.264 streams are always generated using x264, and I can assume this will be the case in the future. Now I have to prepend some video frames to this stream, but am not allowed to decode/encode the whole stream ; which leaves me with the only option to find out the exact parameters I need to pass x264_encoder_open so both streams match.
Currently what I'm doing is :
- Demux the original ts and extract h.264 NAL packets.
- When I find the first "user data unregistered" SEI packet, I parse it and find a bunch of x264 parameters.
- Use libavcodec to start decoding the video. That gives me the dimensions of the picture and the h264 profile and level in the AVCodecContext structure.
- Match all of that as best as I can in the x264_param_t structure.
I can do some encoding with that, and the encoded video plays correctly up to the join point. When VLC is reaching the stitch point it starts throwing out the following sequence of messages and soon after stops playing :
[h264 @ 0x7fe36cd75be0] decode_slice_header error
[h264 @ 0x7fe36cd75be0] no frame!
[h264 @ 0x7fe36ccc9080] Width/height changing with threads is not implemented. Update your Libav version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented.which clearly shows that my encoded frames do not match the original ones. I've been browsing the source code and can't seem to find a way of doing this. What I have currently (besides not working), involves a lot of guesswork, so even if I could make it work with the handful of example files I have, I would be scared to deploy this in production servers.
So the obvious question is : Is there a safe, formal way of doing this ?
Thanks in Advance
-
FFmpeg retrieve a specific program from TS file
8 mai 2017, par chang jcI tried to retrieve a specific program from a TS file.
Said :Input #0, mpegts, from 'DVB_T_good.ts':
Duration: 00:00:48.04, start: 55045.888000, bitrate: 14521 kb/s
Program 300
Metadata:
service_name : ?l?��}�TS�
service_provider: ?l?��
Stream #0:0[0xbb9]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002), yuv420p(tv, top first), 704x480 [SAR 10:11 DAR 4:3], 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc
Stream #0:1[0xbba]: Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, s16p, 128 kb/s
Stream #0:2[0xbbb]: Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, s16p, 128 kb/s
Program 301
Metadata:
service_name : ?l?��N��?S�
service_provider: ?l?��
Stream #0:3[0xbc3]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002), yuv420p(tv, top first), 704x480 [SAR 10:11 DAR 4:3], 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc
Stream #0:9[0xbc4]: Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, s16p, 128 kb/s
Stream #0:10[0xbc5]: Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, s16p, 128 kb/s
Program 302
Metadata:
service_name : ?l?��e��^S�
service_provider: ?l?��
Stream #0:5[0xbcd]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002), yuv420p(tv, top first), 704x480 [SAR 10:11 DAR 4:3], 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc
Stream #0:6[0xbce]: Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, s16p, 128 kb/s
Program 304
Metadata:
service_name : ?l?��S�pcS�
service_provider: ?l?��
Stream #0:4[0xbe1]: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p(tv, bt709, top first), 1920x1080 [SAR 1:1 DAR 16:9], 29.97 fps, 59.94 tbr, 90k tbn, 59.94 tbc
Stream #0:7[0xbe2]: Audio: aac_latm (HE-AAC) ([17][0][0][0] / 0x0011), 48000 Hz, stereo, fltp
Stream #0:8[0xbe3]: Audio: aac_latm (HE-AAC) ([17][0][0][0] / 0x0011), 48000 Hz, stereo, fltpThen I tried to retrieve a specific program as :
ffmpeg -i INPUT -map 0:p:1344 OUTPUT
It succeeds greatly but the only thing I noticed is :
it seems to apply transcode (decode & encode again) to the output implicitely ?
ffmpeg version N-85693-g8de3458 Copyright (c) 2000-2017 the FFmpeg developers
built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.4) 20160609
configuration: --prefix=/home/john/ffmpeg_build --pkg-config-flags=--static --extra-cflags=-I/home/john/ffmpeg_build/include --extra-ldflags=-L/home/john/ffmpeg_build/lib --bindir=/home/john/bin --enable-gpl --enable-libfreetype --enable-libvorbis --enable-libvpx --enable-libx264 --enable-nonfree --disable-ffplay --disable-ffserver --disable-doc --disable-libopus
libavutil 55. 61.100 / 55. 61.100
libavcodec 57. 93.100 / 57. 93.100
libavformat 57. 72.101 / 57. 72.101
libavdevice 57. 7.100 / 57. 7.100
libavfilter 6. 87.100 / 6. 87.100
libswscale 4. 7.101 / 4. 7.101
libswresample 2. 8.100 / 2. 8.100
libpostproc 54. 6.100 / 54. 6.100
[NULL @ 0x33eb3a0] SPS unavailable in decode_picture_timing
[NULL @ 0x33eb3a0] non-existing PPS 0 referenced
[h264 @ 0x33eb3a0] SPS unavailable in decode_picture_timing
[h264 @ 0x33eb3a0] non-existing PPS 0 referenced
[h264 @ 0x33eb3a0] decode_slice_header error
[h264 @ 0x33eb3a0] no frame!
[h264 @ 0x33eb3a0] SPS unavailable in decode_picture_timing
[h264 @ 0x33eb3a0] non-existing PPS 0 referenced
[h264 @ 0x33eb3a0] SPS unavailable in decode_picture_timing
[h264 @ 0x33eb3a0] non-existing PPS 0 referenced
[h264 @ 0x33eb3a0] decode_slice_header error
[h264 @ 0x33eb3a0] no frame!
[h264 @ 0x33eb3a0] SPS unavailable in decode_picture_timing
[h264 @ 0x33eb3a0] non-existing PPS 0 referenced
[h264 @ 0x33eb3a0] SPS unavailable in decode_picture_timing
[h264 @ 0x33eb3a0] non-existing PPS 0 referenced
[h264 @ 0x33eb3a0] decode_slice_header error
[h264 @ 0x33eb3a0] no frame!
[h264 @ 0x33eb3a0] SPS unavailable in decode_picture_timing
[h264 @ 0x33eb3a0] non-existing PPS 0 referenced
[h264 @ 0x33eb3a0] SPS unavailable in decode_picture_timing
[h264 @ 0x33eb3a0] non-existing PPS 0 referenced
[h264 @ 0x33eb3a0] decode_slice_header error
[h264 @ 0x33eb3a0] no frame!
[h264 @ 0x33eb3a0] SPS unavailable in decode_picture_timing
[h264 @ 0x33eb3a0] non-existing PPS 0 referenced
[h264 @ 0x33eb3a0] SPS unavailable in decode_picture_timing
[h264 @ 0x33eb3a0] non-existing PPS 0 referenced
[h264 @ 0x33eb3a0] decode_slice_header error
[h264 @ 0x33eb3a0] no frame!
[mpeg2video @ 0x33ec540] Invalid frame dimensions 0x0.
[h264 @ 0x33eb3a0] SPS unavailable in decode_picture_timing
[h264 @ 0x33eb3a0] non-existing PPS 0 referenced
[h264 @ 0x33eb3a0] SPS unavailable in decode_picture_timing
[h264 @ 0x33eb3a0] non-existing PPS 0 referenced
[h264 @ 0x33eb3a0] decode_slice_header error
[h264 @ 0x33eb3a0] no frame!
[mpeg2video @ 0x33ea200] Invalid frame dimensions 0x0.
Last message repeated 1 times
[mpeg2video @ 0x33b7680] Invalid frame dimensions 0x0.
[h264 @ 0x33eb3a0] SPS unavailable in decode_picture_timing
[h264 @ 0x33eb3a0] non-existing PPS 0 referenced
[h264 @ 0x33eb3a0] SPS unavailable in decode_picture_timing
[h264 @ 0x33eb3a0] non-existing PPS 0 referenced
[h264 @ 0x33eb3a0] decode_slice_header error
[h264 @ 0x33eb3a0] no frame!
[mpeg2video @ 0x33ea200] Invalid frame dimensions 0x0.
[h264 @ 0x33eb3a0] SPS unavailable in decode_picture_timing
[h264 @ 0x33eb3a0] non-existing PPS 0 referenced
[h264 @ 0x33eb3a0] SPS unavailable in decode_picture_timing
[h264 @ 0x33eb3a0] non-existing PPS 0 referenced
[h264 @ 0x33eb3a0] decode_slice_header error
[h264 @ 0x33eb3a0] no frame!
[h264 @ 0x33eb3a0] SPS unavailable in decode_picture_timing
[h264 @ 0x33eb3a0] non-existing PPS 0 referenced
[h264 @ 0x33eb3a0] SPS unavailable in decode_picture_timing
[h264 @ 0x33eb3a0] non-existing PPS 0 referenced
[h264 @ 0x33eb3a0] decode_slice_header error
[h264 @ 0x33eb3a0] no frame!
[h264 @ 0x33eb3a0] SPS unavailable in decode_picture_timing
[h264 @ 0x33eb3a0] non-existing PPS 0 referenced
[h264 @ 0x33eb3a0] SPS unavailable in decode_picture_timing
[h264 @ 0x33eb3a0] non-existing PPS 0 referenced
[h264 @ 0x33eb3a0] decode_slice_header error
[h264 @ 0x33eb3a0] no frame!
[mpeg2video @ 0x33ec540] Invalid frame dimensions 0x0.
[h264 @ 0x33eb3a0] SPS unavailable in decode_picture_timing
[h264 @ 0x33eb3a0] non-existing PPS 0 referenced
[h264 @ 0x33eb3a0] SPS unavailable in decode_picture_timing
[h264 @ 0x33eb3a0] non-existing PPS 0 referenced
[h264 @ 0x33eb3a0] decode_slice_header error
[h264 @ 0x33eb3a0] no frame!
[h264 @ 0x33eb3a0] SPS unavailable in decode_picture_timing
[h264 @ 0x33eb3a0] non-existing PPS 0 referenced
[h264 @ 0x33eb3a0] SPS unavailable in decode_picture_timing
[h264 @ 0x33eb3a0] non-existing PPS 0 referenced
[h264 @ 0x33eb3a0] decode_slice_header error
[h264 @ 0x33eb3a0] no frame!
[h264 @ 0x33eb3a0] SPS unavailable in decode_picture_timing
[h264 @ 0x33eb3a0] non-existing PPS 0 referenced
[h264 @ 0x33eb3a0] SPS unavailable in decode_picture_timing
[h264 @ 0x33eb3a0] non-existing PPS 0 referenced
[h264 @ 0x33eb3a0] decode_slice_header error
[h264 @ 0x33eb3a0] no frame!
[mpeg2video @ 0x33ec540] Invalid frame dimensions 0x0.
[mpeg2video @ 0x33b7680] Invalid frame dimensions 0x0.
Last message repeated 1 times
[mpeg2video @ 0x33ec540] Invalid frame dimensions 0x0.
[mpeg2video @ 0x33ea200] Invalid frame dimensions 0x0.
[mpeg2video @ 0x33b7680] Invalid frame dimensions 0x0.
[mpeg2video @ 0x33ea200] Invalid frame dimensions 0x0.
Last message repeated 1 times
[mpeg2video @ 0x33ec540] Invalid frame dimensions 0x0.
[mpeg2video @ 0x33b7680] Invalid frame dimensions 0x0.
Last message repeated 1 times
[mpeg2video @ 0x33ec540] Invalid frame dimensions 0x0.
[mpeg2video @ 0x33ea200] Invalid frame dimensions 0x0.
[mpeg2video @ 0x33b7680] Invalid frame dimensions 0x0.
[mpeg2video @ 0x33ec540] Invalid frame dimensions 0x0.
[mpeg2video @ 0x33ea200] Invalid frame dimensions 0x0.
Last message repeated 1 times
[mpeg2video @ 0x33b7680] Invalid frame dimensions 0x0.
[mpeg2video @ 0x33ec540] Invalid frame dimensions 0x0.
[mpeg2video @ 0x33b7680] Invalid frame dimensions 0x0.
[mpeg2video @ 0x33ec540] Invalid frame dimensions 0x0.
[mpeg2video @ 0x33b7680] Invalid frame dimensions 0x0.
[mpeg2video @ 0x33ec540] Invalid frame dimensions 0x0.
[mpeg2video @ 0x33b7680] Invalid frame dimensions 0x0.
Last message repeated 1 times
[h264 @ 0x33eb3a0] SPS unavailable in decode_picture_timing
[h264 @ 0x33eb3a0] non-existing PPS 0 referenced
[h264 @ 0x33eb3a0] SPS unavailable in decode_picture_timing
[h264 @ 0x33eb3a0] non-existing PPS 0 referenced
[h264 @ 0x33eb3a0] decode_slice_header error
[h264 @ 0x33eb3a0] no frame!
[mpeg2video @ 0x33ec540] Invalid frame dimensions 0x0.
[mpeg2video @ 0x33b7680] Invalid frame dimensions 0x0.
[mpeg2video @ 0x33ec540] Invalid frame dimensions 0x0.
Last message repeated 1 times
[mpeg2video @ 0x33ea200] Invalid frame dimensions 0x0.
[mpeg2video @ 0x33b7680] Invalid frame dimensions 0x0.
Last message repeated 2 times
[mpeg2video @ 0x33ec540] Invalid frame dimensions 0x0.
[mpeg2video @ 0x33b7680] Invalid frame dimensions 0x0.
[mpegts @ 0x33af360] PES packet size mismatch
Last message repeated 9 times
Input #0, mpegts, from 'DVB_T_good.ts':
Duration: 00:00:48.04, start: 55045.888000, bitrate: 14521 kb/s
Program 300
Metadata:
service_name : ?l?��}�TS�
service_provider: ?l?��
Stream #0:0[0xbb9]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002), yuv420p(tv, top first), 704x480 [SAR 10:11 DAR 4:3], 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc
Stream #0:1[0xbba]: Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, s16p, 128 kb/s
Stream #0:2[0xbbb]: Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, s16p, 128 kb/s
Program 301
Metadata:
service_name : ?l?��N��?S�
service_provider: ?l?��
Stream #0:3[0xbc3]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002), yuv420p(tv, top first), 704x480 [SAR 10:11 DAR 4:3], 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc
Stream #0:9[0xbc4]: Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, s16p, 128 kb/s
Stream #0:10[0xbc5]: Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, s16p, 128 kb/s
Program 302
Metadata:
service_name : ?l?��e��^S�
service_provider: ?l?��
Stream #0:5[0xbcd]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002), yuv420p(tv, top first), 704x480 [SAR 10:11 DAR 4:3], 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc
Stream #0:6[0xbce]: Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, s16p, 128 kb/s
Program 304
Metadata:
service_name : ?l?��S�pcS�
service_provider: ?l?��
Stream #0:4[0xbe1]: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p(tv, bt709, top first), 1920x1080 [SAR 1:1 DAR 16:9], 29.97 fps, 59.94 tbr, 90k tbn, 59.94 tbc
Stream #0:7[0xbe2]: Audio: aac_latm (HE-AAC) ([17][0][0][0] / 0x0011), 48000 Hz, stereo, fltp
Stream #0:8[0xbe3]: Audio: aac_latm (HE-AAC) ([17][0][0][0] / 0x0011), 48000 Hz, stereo, fltp
map 0:p:304
File '304_1800.ts' already exists. Overwrite ? [y/N] y
Stream mapping:
Stream #0:4 -> #0:0 (h264 (native) -> mpeg2video (native))
Stream #0:7 -> #0:1 (aac_latm (native) -> mp2 (native))
Stream #0:8 -> #0:2 (aac_latm (native) -> mp2 (native))
Press [q] to stop, [?] for help
[h264 @ 0x33d6d20] mmco: unref short failure
Last message repeated 1 times
[h264 @ 0x33d6d20] number of reference frames (0+5) exceeds max (4; probably corrupt input), discarding one
[h264 @ 0x33d6d20] reference picture missing during reorder
[h264 @ 0x33d6d20] Missing reference picture, default is 65784
[h264 @ 0x33d6d20] reference picture missing during reorder
[h264 @ 0x33d6d20] Missing reference picture, default is 65785
Output #0, mpegts, to '304_1800.ts':
Metadata:
encoder : Lavf57.72.101
Stream #0:0: Video: mpeg2video (Main), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 200 kb/s, 29.97 fps, 90k tbn, 29.97 tbc
Metadata:
encoder : Lavc57.93.100 mpeg2video
Side data:
cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: -1
Stream #0:1: Audio: mp2, 48000 Hz, stereo, s16, 384 kb/s
Metadata:
encoder : Lavc57.93.100 mp2
Stream #0:2: Audio: mp2, 48000 Hz, stereo, s16, 384 kb/s
Metadata:
encoder : Lavc57.93.100 mp2
[h264 @ 0x33d6d20] mmco: unref short failureime=00:00:44.34 bitrate=3506.2kbits/s speed=1.43x
Last message repeated 1 times
[h264 @ 0x33d6d20] number of reference frames (0+5) exceeds max (4; probably corrupt input), discarding one
[mpegts @ 0x33af360] PES packet size mismatch
[aac_latm @ 0x3587360] Number of bands (59) exceeds limit (45).
Error while decoding stream #0:7: Invalid data found when processing input
Last message repeated 1 times
[h264 @ 0x33d6d20] mmco: unref short failure
Last message repeated 1 times
[h264 @ 0x33d6d20] number of reference frames (0+5) exceeds max (4; probably corrupt input), discarding one
[h264 @ 0x33d6d20] mmco: unref short failureime=00:00:45.05 bitrate=3491.2kbits/s speed=1.43x
Last message repeated 1 times
[h264 @ 0x33d6d20] number of reference frames (0+5) exceeds max (4; probably corrupt input), discarding one
[h264 @ 0x33d6d20] mmco: unref short failure
Last message repeated 1 times
[h264 @ 0x33d6d20] number of reference frames (0+5) exceeds max (4; probably corrupt input), discarding one
[mpegts @ 0x33af360] PES packet size mismatchme=00:00:47.74 bitrate=3470.1kbits/s speed=1.43x
Last message repeated 1 times
[h264 @ 0x33d6d20] error while decoding MB 97 35, bytestream -12
Error while decoding stream #0:7: Invalid data found when processing input
Error while decoding stream #0:8: Invalid data found when processing input
frame= 1404 fps= 42 q=31.0 Lsize= 20396kB time=00:00:47.88 bitrate=3489.5kbits/s speed=1.42x
video:14144kB audio:4429kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 9.813825%You could notice by following message :
**
Output #0, mpegts, to '304_1800.ts':
Metadata:
encoder : Lavf57.72.101
Stream #0:0: Video: mpeg2video (Main), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 200 kb/s, 29.97 fps, 90k tbn, 29.97 tbc
Metadata:
encoder : Lavc57.93.100 mpeg2video
Side data:
cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: -1
Stream #0:1: Audio: mp2, 48000 Hz, stereo, s16, 384 kb/s
Metadata:
encoder : Lavc57.93.100 mp2
Stream #0:2: Audio: mp2, 48000 Hz, stereo, s16, 384 kb/s
Metadata:
encoder : Lavc57.93.100 mp2**
If so, could I avoid the transcoding by command ? Or it is a necessary ?
It it is a need, WHY ?