[FFmpeg-user] Extracting stills frames from a DVB-T MPEG transport stream with subtitles
Dear All, I am attempting to extract still frames from a video stream in a multi-channel DVB-T MPEG transport stream, for example every 2 seconds, with selected accompanying subtitles but can't get it to work. This example command successfully extracts frames from video stream 0:26 to jpeg files. ffmpeg -i dvb.ts -map 0:26 -qscale:v 1 -r 0.5 stills%04d.jpg This one successfully copies the same file's video stream 0:26 along with subtitle stream 0:30 to a video file in a Matroska container. ffmpeg -i dvb.ts -map 0:26 -c:v copy -map 0:30 -c:s copy tmp.mkv Is there a way to combine the two to capture still frames from the video stream to JPEG files including the accompanying subtitles? The relevant part of the dvb.ts file's contents from ffprobe are, Input #0, mpegts, from 'dvb.ts': Duration: 00:02:00.18, start: 52229.147411, bitrate: 24040 kb/s Program 1542 Metadata: service_name: TMC service_provider: SMR6 Stream #0:26[0x26c]: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p(tv, bt709, top first), 1920x1080 [SAR 1:1 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc Stream #0:27[0x276](fra): Audio: eac3 ([6][0][0][0] / 0x0006), 48000 Hz, stereo, fltp, 128 kb/s Stream #0:28[0x277](qaa): Audio: eac3 ([6][0][0][0] / 0x0006), 48000 Hz, stereo, fltp, 128 kb/s Stream #0:29[0x278](fra): Audio: eac3 ([6][0][0][0] / 0x0006), 48000 Hz, stereo, fltp, 96 kb/s (visual impaired) (descriptions) Stream #0:30[0x28a](fra): Subtitle: dvb_subtitle ([6][0][0][0] / 0x0006) (hearing impaired) Stream #0:31[0x28b](fra): Subtitle: dvb_subtitle ([6][0][0][0] / 0x0006) Stream #0:7[0xaa]: Unknown: none ([5][0][0][0] / 0x0005) $ ffmpeg -version ffmpeg version N-96647-g343ccfcc4d Copyright (c) 2000-2020 the FFmpeg developers built with gcc 9.2.0 (GCC) configuration: --prefix=/usr --libdir=/usr/lib64 --shlibdir=/usr/lib64 --docdir=/usr/doc/ffmpeg-git-20200206/html --mandir=/usr/man --disable-debug --enable-shared --disable-static --enable-gpl --enable-version3 --enable-avresample --arch=x86_64 --disable-encoder=aac --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-gnutls --enable-libbluray --enable-libcaca --enable-libcdio --enable-libopus --enable-librtmp --enable-libspeex --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libmp3lame --enable-opencl --enable-opengl --enable-libopenjpeg --enable-libpulse --enable-libsmbclient --enable-libwavpack libavutil 56. 39.100 / 56. 39.100 libavcodec 58. 68.100 / 58. 68.100 libavformat58. 38.100 / 58. 38.100 libavdevice58. 9.103 / 58. 9.103 libavfilter 7. 74.100 / 7. 74.100 libavresample 4. 0. 0 / 4. 0. 0 libswscale 5. 6.100 / 5. 6.100 libswresample 3. 6.100 / 3. 6.100 libpostproc55. 6.100 / 55. 6.100 Thanks Tom Crane ___ ffmpeg-user mailing list ffmpeg-user@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-user] MPEG2 Profile Options Integer order wrong
On Fri, Jun 19, 2020 at 08:03:00PM +0200, Marton Balint wrote: > > > On Fri, 19 Jun 2020, Carl Eugen Hoyos wrote: > > > Am Mi., 17. Juni 2020 um 01:32 Uhr schrieb Bill Crockett > > : > > > > > > https://ffmpeg.org/ffmpeg-all.html#mpeg2 > > > > > > Who maintains the documentation on the above and how can I contact to ask > > > if it is wrong or correct? > > > > > > 16.15 mpeg2 > > > > > > MPEG-2 video encoder. > > > > > > 16.15.1 Options > > > > > > profile integer > > > > > > Select the mpeg2 profile to encode: > > > > > > ‘422’ > > > ‘main’ > > > ‘ss’ > > > > > > Spatially Scalable > > > ‘snr’ > > > > > > SNR Scalable > > > ‘high’ > > > ‘simple’ > > > > > > There are no numbers listed, but my guess is the order as is written and > > > would be "main" = 1 and "high" = 4 > > > > > > This is wrong and "high should be 1 and "main" should be 4. > > > > Indeed. > > > > I will wait a few more days and fix it then unless somebody beats me. > > You can fix it if you want, but I don't know why anybody assumes that the > order of the options and their integer mapping actually matches? Nothing > says it does, and I bet there are other options where it does not. I think > what confused the user here is that the option is mentioned as an "integer" > option when in fact it is a string option from user point of view. Maybe we > shuld simply remove the part, so the user can use the string > equivavalent as generally advised. I'll submit a patch to fix the order. Also the ffpeg -h full can't get the profile option anyore or it'll show the value for every const string. > > Regards, > Marton > ___ > ffmpeg-user mailing list > ffmpeg-user@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-user > > To unsubscribe, visit link above, or email > ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe". -- Thanks, Limin Wang ___ ffmpeg-user mailing list ffmpeg-user@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-user] GOP Structure - XDCAM RDD9
On Fri, 19 Jun 2020, Anthony Smith wrote: Hello everyone, I am having an issue creating an RDD9 compliant MXF using FFMPEG within FFASTrans. I am transcoding from a QT ProRes 422 HQ MOV to XDCAM MXF then re-wrapping using BMX Trans Wrap to ensure RDD9 compliance. The base issue is the GOP structure and the last frame of each GOP. Clients Baton File QC is looking for a B frame, whereas FFMPEG outputs a P frame. The expected file specs after transcode are: PAL 1920x1080 50i XDCAM 422 50mbps long-gop, closed gop. M=3, N=12 2x AES PCM audio streams, 1 channel in each. My command is as follows: c:\FFAStrans1.0.0\FFAStrans1.0.0\Processors\ffmpeg\x64>ffmpeg.exe -i "z:\100_incoming_media\OM_TEST.mov" -profile:v 0 -level:v 2 -map 0:1 -r 25 -pix_fmt yuv422p -aspect 16:9 -intra_vlc 1 -b:v 5000 -minrate 5000 -maxrate 5000 -bufsize 17825792 -rc_init_occupancy 17825792 -sc_threshold 10 -non_linear_quant 1 -color_primaries bt709 -color_trc bt709 -colorspace bt709 -seq_disp_ext 1 -video_format component -color_range 1 -chroma_sample_location topleft -signal_standard 4 -dc 8 -qmin 3 -qmax 28 -mpv_flags +strict_gop -strict 1 -g 12 -bf 2 -field_order tt -top 1 -flags +cgop+ildct+ilme -alternate_scan 1 -map 0:2 -map 0:3 "z:\1_temp\MXFTEST\OM_Test_Out.mxf" Everything is fine, except for the GOP structure. Running FFProbe, the GOP structure is IBB PBB PBB PB*P* I submit this to clients Baton File QC and they fail it, as the expected GOP is: IBB PBB PBB PB*B* If I remove the +cgop flag from the command I do get the desired IBB PBB PBB PBB But as expected, the GOP isn't closed and fails file QC. What else is interesting, doing the exact same transcode with the same parameters within Telestreams Vantage transcoding system, I get a GOP structure that looks like this at the very beginning "BB IBB PBB PBB PBB". It opens with two B frames at the beginning of the file and then subsequently follows the correct closed GOP pattern throughout. I'm thinking; I am either doing something wrong with the FFMPEG Command, or just missing something. Or the output file from FFMPEG and its GOP structure is correct and Baton File QC parameters are being too strict. Or there is a very slim chance that there is a bug with FFMPEG creating XDCAM Closed Gop MXF files. AFAIK there is no bug, but ffmpeg only supports generating the first frame as an I-frame, because it makes little sense to start with a half-assed B frame which uses backward prediction only. At the end of the day, it's down to the difference between a "B" frame and "P" frame at the end of a Closed GOP output from FFMPEG. I understand that Closed GOPs are separate and don't cross reference each other, and makes sense why there would be a P frame at the end of the closed GOP and not a B frame... Exactly. It is more correct to designate the last frame in the GOP as P-frame because it cannot use backward prediction because of the closed GOP requirement. Just annoying that the clients Baton file QC says this can't be so... a literal "computer says no" moment. Yes. There is no support to generate "fake" B-frames which are in fact P-frames. I guess this can be implemented realtively easily although, but it would be less "correct" than what we have now, so an extra flag will be needed for it. Regards, Marton ___ ffmpeg-user mailing list ffmpeg-user@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-user] Concatenating audio files results in a file of the wrong length
Am Fr., 19. Juni 2020 um 21:25 Uhr schrieb Stephanye Carrier : > > I have a project that requires me to demux audio from video files, cut > the audio up in parts, then concatenate the parts back together and > remux the audio and video together. This is often not possible because of how audio and video are interleaved in files. > However, I am running into an issue where the resulting audio file is > the wrong length which results in a desync. > > ffmpeg -hide_banner -i video.mp4 -vn -acodec copy audio.m4a > ffmpeg -hide_banner -ss xx:xx:xx -i audio.m4a -to xx:xx:xx -c copy PartX.m4a > ffmpeg -hide_banner -f concat -safe 0 -i concat.txt -c copy newaudio.m4a Please remove -hide_banner if you want to support on this mailing list and provide the command lines you tested together with the complete, uncut console output. Filters exist that allow you to cut and re-encode in one operation, this will avoid the resync. And if above input file is not the original, use originals instead. Carl Eugen ___ ffmpeg-user mailing list ffmpeg-user@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".
[FFmpeg-user] Concatenating audio files results in a file of the wrong length
I have a project that requires me to demux audio from video files, cut the audio up in parts, then concatenate the parts back together and remux the audio and video together. However, I am running into an issue where the resulting audio file is the wrong length which results in a desync. ffmpeg -hide_banner -i video.mp4 -vn -acodec copy audio.m4a ffmpeg -hide_banner -ss xx:xx:xx -i audio.m4a -to xx:xx:xx -c copy PartX.m4a ffmpeg -hide_banner -f concat -safe 0 -i concat.txt -c copy newaudio.m4a FFprobe of the original file : Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'audio.m4a': Metadata: major_brand : M4A minor_version : 512 compatible_brands: M4A isomiso2 encoder : Lavf58.39.101 Duration: 04:29:16.43, start: 0.003000, bitrate: 164 kb/s Stream #0:0(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 160 kb/s (default) Metadata: handler_name : SoundHandler FFprobe of the concatenated file : Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'newaudio.m4a': Metadata: major_brand : M4A minor_version : 512 compatible_brands: M4A isomiso2 encoder : Lavf58.39.101 Duration: 04:32:04.47, start: 0.00, bitrate: 164 kb/s Stream #0:0(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 160 kb/s (default) Metadata: handler_name : SoundHandler FFProbe of one of the audio parts : Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'Part0.m4a': Metadata: major_brand : M4A minor_version : 512 compatible_brands: M4A isomiso2 encoder : Lavf58.39.101 Duration: 00:02:48.02, start: 0.00, bitrate: 165 kb/s Stream #0:0(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 160 kb/s (default) Metadata: handler_name : SoundHandler I do not know if it's relevant, but the original video file is made of .ts chunks concatenated together then remuxed to an mp4. How can I fix the length issue? Thank you. ___ ffmpeg-user mailing list ffmpeg-user@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-user] MPEG2 Profile Options Integer order wrong
On Fri, 19 Jun 2020, Carl Eugen Hoyos wrote: Am Mi., 17. Juni 2020 um 01:32 Uhr schrieb Bill Crockett : https://ffmpeg.org/ffmpeg-all.html#mpeg2 Who maintains the documentation on the above and how can I contact to ask if it is wrong or correct? 16.15 mpeg2 MPEG-2 video encoder. 16.15.1 Options profile integer Select the mpeg2 profile to encode: ‘422’ ‘main’ ‘ss’ Spatially Scalable ‘snr’ SNR Scalable ‘high’ ‘simple’ There are no numbers listed, but my guess is the order as is written and would be "main" = 1 and "high" = 4 This is wrong and "high should be 1 and "main" should be 4. Indeed. I will wait a few more days and fix it then unless somebody beats me. You can fix it if you want, but I don't know why anybody assumes that the order of the options and their integer mapping actually matches? Nothing says it does, and I bet there are other options where it does not. I think what confused the user here is that the option is mentioned as an "integer" option when in fact it is a string option from user point of view. Maybe we shuld simply remove the part, so the user can use the string equivavalent as generally advised. Regards, Marton ___ ffmpeg-user mailing list ffmpeg-user@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-user] MPEG2 Profile Options Integer order wrong
Am Mi., 17. Juni 2020 um 01:32 Uhr schrieb Bill Crockett : > > https://ffmpeg.org/ffmpeg-all.html#mpeg2 > > Who maintains the documentation on the above and how can I contact to ask if > it is wrong or correct? > > 16.15 mpeg2 > > MPEG-2 video encoder. > > 16.15.1 Options > > profile integer > > Select the mpeg2 profile to encode: > > ‘422’ > ‘main’ > ‘ss’ > > Spatially Scalable > ‘snr’ > > SNR Scalable > ‘high’ > ‘simple’ > > There are no numbers listed, but my guess is the order as is written and > would be "main" = 1 and "high" = 4 > > This is wrong and "high should be 1 and "main" should be 4. Indeed. I will wait a few more days and fix it then unless somebody beats me. Carl Eugen ___ ffmpeg-user mailing list ffmpeg-user@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-user] Can I convert from .ram to .mp4?
Thanks for the courtesy of replying, Rodney! Turns out I'd not noticed that I was still in the bin directory when I invoked first invoked ffmpeg.exe. When I copied the executable into the folder where only the 317.ram was, ffmpeg worked as it ought to. I'd not known about the user forum's proscription against pasting screenshots, so that won't happen again. I think I did, in a later post, paste the TEXT from the PowerShell window into a message to the user forum. Again, thanks for your kindness in replying! Regards, Dave On 6/19/2020 8:48 AM, Rodney Baker wrote: On Thursday, 18 June 2020 2:56:24 ACST David wrote: I've watched the video and invoked a simple command: ffmpeg -i 317.ram 317.mp4 which the Windows PowerShell said I had to change to .\ffmpeg -i 317.ram 317.mp4 which I did. I have the ffmpeg.exe file in the same folder as the 317.ram, so do you think that should work? I'll paste here the PowerShell window showing "Permission denied" Any comments or assistance would be appreciated! Regards, Dave Dave, As others have suggested, you've not really provided enough information to properly diagnose this, but I'm also pretty sure this is a Windows problem, and one that I've seen recently with other video editing software. Are you using a recent build of Windows 10? If so, you're possibly running into an issue with Windows "Protected Folders", where "suspicious" applications (i.e. basically ones not written or signed by Microsoft) are denied write permissions to folders containing user data. This is presumably to guard against ransomware encrypting users' files. Search for Protected Folders in Settings - you should be able to find recently blocked programs and add ffmpeg to the list of permitted applications. I only know this because my son recently had this same issue with video editing software on his laptop. Next time you need to ask for help, though, please follow the pointers given by others and include the command line you're using along with full, uncut console output from ffmpeg (copied as text, not a screenshot). ___ ffmpeg-user mailing list ffmpeg-user@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-user] Can I convert from .ram to .mp4?
On Thursday, 18 June 2020 2:56:24 ACST David wrote: > I've watched the video and invoked a simple command: > > ffmpeg -i 317.ram 317.mp4 > which the Windows PowerShell said I had to change to > .\ffmpeg -i 317.ram 317.mp4 > which I did. > > I have the ffmpeg.exe file in the same folder as the 317.ram, so do you > think that should work? I'll paste here the PowerShell window showing > "Permission denied" > > > > Any comments or assistance would be appreciated! > > Regards, > Dave Dave, As others have suggested, you've not really provided enough information to properly diagnose this, but I'm also pretty sure this is a Windows problem, and one that I've seen recently with other video editing software. Are you using a recent build of Windows 10? If so, you're possibly running into an issue with Windows "Protected Folders", where "suspicious" applications (i.e. basically ones not written or signed by Microsoft) are denied write permissions to folders containing user data. This is presumably to guard against ransomware encrypting users' files. Search for Protected Folders in Settings - you should be able to find recently blocked programs and add ffmpeg to the list of permitted applications. I only know this because my son recently had this same issue with video editing software on his laptop. Next time you need to ask for help, though, please follow the pointers given by others and include the command line you're using along with full, uncut console output from ffmpeg (copied as text, not a screenshot). -- == Rodney Baker VK5ZTV rodney.ba...@iinet.net.au CCNA #CSCO12880208 == ___ ffmpeg-user mailing list ffmpeg-user@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".
[FFmpeg-user] How to terminate cleanly a recording on Windows
Hi there, I'm trying to record lots of small wav files to give to PocketSphinx for adaptation. My command looks like this: ffmpeg.exe -f dshow -i audio="Microphone sur casque (2- Plant" -acodec pcm_s16le -ac 1 -ar 16000 1.wav I haven't tried this particular command under Linux, but usually hitting "q" ends the recording properly. On Windows, "q" seems to do nothing, and CTRL+C ends the process, but not at the right time. Most of the time, I miss the end of the recording. My recordings are just a few seconds long. Would there be any clever way to end properly the recording on Windows? ffmpeg version git-2020-06-08-d29aaf1 Copyright (c) 2000-2020 the FFmpeg developers built with gcc 9.3.1 (GCC) 20200523 configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libsrt --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --disable-w32threads --enable-libmfx --enable-ffnvcodec --enable-cuda-llvm --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt --enable-amf libavutil 56. 50.100 / 56. 50.100 libavcodec 58. 90.100 / 58. 90.100 libavformat58. 44.100 / 58. 44.100 libavdevice58. 9.103 / 58. 9.103 libavfilter 7. 84.100 / 7. 84.100 libswscale 5. 6.101 / 5. 6.101 libswresample 3. 6.100 / 3. 6.100 libpostproc55. 6.100 / 55. 6.100 Guessed Channel Layout for Input Stream #0.0 : stereo Input #0, dshow, from 'audio=Microphone sur casque (2- Plant': Duration: N/A, start: 99694.804000, bitrate: 1411 kb/s Stream #0:0: Audio: pcm_s16le, 44100 Hz, stereo, s16, 1411 kb/s File '1.wav' already exists. Overwrite? [y/N] Y Stream mapping: Stream #0:0 -> #0:0 (pcm_s16le (native) -> pcm_s16le (native)) Press [q] to stop, [?] for help Output #0, wav, to '1.wav': Metadata: ISFT: Lavf58.44.100 Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 16000 Hz, mono, s16, 256 kb/s Metadata: encoder : Lavc58.90.100 pcm_s16le size= 512kB time=00:00:16.49 bitrate= 254.3kbits/s speed= 1.1x Thanks. -- Bruno Verachten ___ ffmpeg-user mailing list ffmpeg-user@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-user] MPEG2 Profile Options Integer order wrong
On Wed Jun 17 15:28:43 EEST 2020 Moritz Barsnick wrote: Hi Bill, On Wed, Jun 17, 2020 at 12:28:39 +1000, Bill Crockett wrote: Before you told me this, I did try the words "high" or "main", but I put in quotes either single or double and got errors. It would be extremely helpful if you showed us the *actual* command line used, and the (complete, uncut) console output, which is helpful to debug any kind of issues. We can usually point out your issue from this info. "Got errors" is very terse. Cheers, Moritz Hi Moritz, Sorry it sounded terse. There was no need for me to add the command line or console output. I took the documentation here literally: https://ffmpeg.org/ffmpeg-all.html#Options-33 profile integer Select the mpeg2 profile to encode: ‘422’ ‘main’ ‘ss’ Spatially Scalable ‘snr’ SNR Scalable ‘high’ ‘simple’ The Profile options have quotes around them. Probably to high-light them in the document. As Limin stated, you don't put in quotes. It was also confusing because it asks for an integer, but should be string. Thanks, Bill ___ ffmpeg-user mailing list ffmpeg-user@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".